<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>构造函数创建对象</title>
</head>
<body>
    
</body>
<script>
    // 使用构造函数创建对象 也可以实现批量的创建对象
    // 构造函数有一个默认的定律 就是构造函数的函数名第一个字母需要大写

    /*
        构造函数相当于是在自己这个函数对象中创建并且操作数据
        函数工厂是通过函数的方式 返回一个对象作为数据
            两者的本质是不同的
    */
    function User(name,age){
        // 构造函数中定义的每个属性一定要使用this创建
        this.name = name
        this.age = age
        // 箭头函数的this指向的是拥有整个箭头函数的对象的this  
        this.show = ()=>{
            console.log(this.name+'myshow')
        }
        this.info = function(){
            console.log(`${this.name}的年龄是${this.age}`)
        }
    }
    let jimmy = new User('jimmy',22)
    jimmy.show()  //jimmymyshow
    jimmy.info()  //jimmy的年龄是22
</script>
</html>